/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package datosServer;

/**
 *
 * @author mimi
 */
public class CabezaColaPieza extends Pieza
{
    int cabeza;
    int cola;
    
    int coordenadaXcabeza;
    int coordenadaYcabeza;

    int coordenadaXcola;
    int coordenadaYcola;
    
    public String extension = ".png";

    public CabezaColaPieza()
    {
        cabeza = -1;
        cola = -1;
        coordenadaXcabeza=0;
        coordenadaYcabeza=0;
        coordenadaXcola=0;
        coordenadaYcola=0;

    }


    public int getCabeza() {
        return cabeza;
    }

    public void setCabeza(int cabeza) {
        this.cabeza = cabeza;
    }

    public int getCola() {
        return cola;
    }

    public void setCola(int cola) {
        this.cola = cola;
    }

    public int getCoordenadaXcabeza() {
        return coordenadaXcabeza;
    }

    public void setCoordenadaXcabeza(int coordenadaXcabeza) {
        this.coordenadaXcabeza = coordenadaXcabeza;
    }

    public int getCoordenadaXcola() {
        return coordenadaXcola;
    }

    public void setCoordenadaXcola(int coordenadaXcola) {
        this.coordenadaXcola = coordenadaXcola;
    }

    public int getCoordenadaYcabeza() {
        return coordenadaYcabeza;
    }

    public void setCoordenadaYcabeza(int coordenadaYcabeza) {
        this.coordenadaYcabeza = coordenadaYcabeza;
    }

    public int getCoordenadaYcola() {
        return coordenadaYcola;
    }

    public void setCoordenadaYcola(int coordenadaYcola) {
        this.coordenadaYcola = coordenadaYcola;
    }

    public int getcabeza() {
        return cabeza;
    }

    public void setcabeza(int x) {
        this.cabeza = x;
    }

    public int getcola() {
        return cola;
    }

    public void setY(int y) {
        this.cola = y;
    }

   /* public CabezaColaPieza()
    {
        x=""; y="";
    }

    public String getX() {
        return x;
    }

    public void setX(String x) {
        this.x = x;
    }

    public String getY() {
        return y;
    }

    public void setY(String y) {
        this.y = y;
    }
*/
    


    public void agregarCoodenadasCabeza(String coordenada)//Pasa toda la coordenada sin ser separado
    {
        String [] arg = coordenada.split("-");
        this.coordenadaXcabeza=Integer.parseInt(arg[0]);
        this.coordenadaYcabeza=Integer.parseInt(arg[1]);
    }


    public void agregarCoodenadasCola(String coordenada)//Pasa toda la coordenada sin ser separado
    {
        String [] arg = coordenada.split("-");
        this.coordenadaXcola=Integer.parseInt(arg[0]);
        this.coordenadaYcola=Integer.parseInt(arg[1]);
    }




//REVISAR LAS CONDICIONES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11-------------------------------------------------------------------------
  /*CUANDO LO LLAME DEBO DE ANTES ASEGURARME QUE YA HAYA PUESTO LAS COORDENADAS DE LA FICHA DE LA MAQUINA EN SU PIEZA*/
    public void CambioCoordenadaCabezaCola(/*ListaPieza piezasMaquina,*/Usuario user, Pieza piezaOponente)
    {
    //    int valorS=0; int valorI=0;
        System.out.println("\n(CabezaCola) Entro!!!!!!!!!!!!!!!!");
        int cabezaU, colaU; cabezaU=colaU=0;
        cabezaU = user.getPartida().getCabezaCola().getCabeza();
        colaU = user.getPartida().getCabezaCola().getCola();

       // valorS=PJugador.getValSuperior(); valorI=PJugador.getValInferior();
        System.out.println("\n(ListaPieza)Cabeza= "+cabezaU+" Cola= "+colaU+"\n");

            //System.out.println("Valor pieza Maquina(Sup)= "+pieza.getValSuperior()+" Valor pieza Maquina(Inf)= "+pieza.getValInferior()+"\n");

        if (piezaOponente.getValSuperior()==cabezaU || piezaOponente.getValInferior()==cabezaU)
        {
            if (piezaOponente.getValSuperior()==cabezaU)
            {
                user.getPartida().getCabezaCola().setCabeza(piezaOponente.getValInferior());
                user.getPartida().getCabezaCola().setCoordenadaXcabeza(piezaOponente.getCoordenadaX());
                user.getPartida().getCabezaCola().setCoordenadaYcabeza(piezaOponente.getCoordenadaY());

            }
            else
            {
                user.getPartida().getCabezaCola().setCabeza(piezaOponente.getValSuperior());
                user.getPartida().getCabezaCola().setCoordenadaXcabeza(piezaOponente.getCoordenadaX());
                user.getPartida().getCabezaCola().setCoordenadaYcabeza(piezaOponente.getCoordenadaY());


            }

        }
        else
        {
            if (piezaOponente.getValSuperior()==colaU || piezaOponente.getValInferior()==colaU)
            {
                if (piezaOponente.getValSuperior()==colaU)
                {
                    user.getPartida().getCabezaCola().setCola(piezaOponente.getValInferior());
                    user.getPartida().getCabezaCola().setCoordenadaXcola(piezaOponente.getCoordenadaX());
                    user.getPartida().getCabezaCola().setCoordenadaYcola(piezaOponente.getCoordenadaY());

                }
                else
                {
                    user.getPartida().getCabezaCola().setCola(piezaOponente.getValSuperior());
                    user.getPartida().getCabezaCola().setCoordenadaXcola(piezaOponente.getCoordenadaX());
                    user.getPartida().getCabezaCola().setCoordenadaYcola(piezaOponente.getCoordenadaY());

                }
            }
        }



       /*     if (piezaOponente.getValSuperior()==cabezaU || piezaOponente.getValSuperior()==colaU)
            {
                if (piezaOponente.getValSuperior() == cabezaU)
                {
                    user.getPartida().getCabezaCola().setCabeza(piezaOponente.getValInferior());
                    user.getPartida().getCabezaCola().setCoordenadaXcabeza(piezaOponente.getCoordenadaX());
                    user.getPartida().getCabezaCola().setCoordenadaYcabeza(piezaOponente.getCoordenadaY());
                }
                else
                {
                    user.getPartida().getCabezaCola().setCola(piezaOponente.getValInferior());
                    user.getPartida().getCabezaCola().setCoordenadaXcola(piezaOponente.getCoordenadaX());
                    user.getPartida().getCabezaCola().setCoordenadaYcola(piezaOponente.getCoordenadaY());
                }

            }
            else
            {
                if (piezaOponente.getValInferior()==cabezaU || piezaOponente.getValInferior()==colaU)
                {
                    if (piezaOponente.getValInferior()==cabezaU)
                    {
                        user.getPartida().getCabezaCola().setCabeza(piezaOponente.getValSuperior());
                        user.getPartida().getCabezaCola().setCoordenadaXcabeza(piezaOponente.getCoordenadaX());
                        user.getPartida().getCabezaCola().setCoordenadaYcabeza(piezaOponente.getCoordenadaY());

                    }
                    else
                    {
                        user.getPartida().getCabezaCola().setCola(piezaOponente.getValSuperior());
                        user.getPartida().getCabezaCola().setCoordenadaXcola(piezaOponente.getCoordenadaX());
                        user.getPartida().getCabezaCola().setCoordenadaYcola(piezaOponente.getCoordenadaY());
                    }
                }

            }*/
                        System.out.println("\n(CabezaCola) Saliooooo!!!!!!!!!!!!!!!!");
    }


       public String concatenarPathImagenOponente (int primerValor, int segundoValor, String caracter)
    {
        String cadena ="";
        System.out.println("\nPrimer Valor = "+primerValor+"        Segundo Valor = "+segundoValor);
        if (primerValor <= segundoValor)
        {
            cadena = String.valueOf(primerValor)+String.valueOf(segundoValor)+caracter+extension;
            System.out.println("(CCP) cadena de concatenar=  "+cadena);
        }
        else
        {
            cadena = segundoValor+primerValor+caracter+extension;
            System.out.println("(CCP)(else 2<1) cadena de concatenar=  "+cadena);
        }


        return cadena;
    }

       

    //X,Y son las coordenadas
    public String ImagenDelOponenteValidacion (int cabeza, int cola, Pieza Oponente,boolean controlReferencia,int X, int Y)
    {
        String referencia = "";
        //EL valor superior de la pieza va a ser siempre menor que el valor inferior de la pieza
        //el de la cabeza de del lado derecho
        System.out.println("\n(CCP)(IMAOPOVALI)Valores del oponente=   "+Oponente.getValSuperior()+"-"+Oponente.getValInferior());

        if (controlReferencia==true)//HORIZONTAL
        {

                if ((Oponente.getValSuperior()== cabeza) || (Oponente.getValInferior()== cabeza))
                {
                            if (X == 6)
                            {
                                if (Oponente.getValSuperior()== cabeza)
                                {
                                    referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                                    Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                                }
                                else
                                {
                                    referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                                    Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien

                                }
                            }
                            else
                            {
                                if (Oponente.getValSuperior()== cabeza)
                                {
                                    referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                                    Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                                }
                                else
                                {
                                    referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                                    Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien

                                }
                            }
                }
                else
                {
                    if ((Oponente.getValSuperior()== cola) || (Oponente.getValInferior()== cola))
                    {
                            if (X==0)
                            {
                                if (Oponente.getValSuperior()== cola)
                                {
                                    referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                                    Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                                }
                                else
                                {
                                    referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                                    Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien

                                }

                            }
                            else
                            {
                                if (Oponente.getValSuperior()== cola)
                                {
                                    referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                                    Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                                }
                                else
                                {
                                    referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                                    Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien

                                }
                            }
                    }
                }
        }
        else//VERTICAL
        {

             if ((Oponente.getValSuperior()== cabeza) || (Oponente.getValInferior()== cabeza))
                {
                        if (Y==9)
                        {
                            if (Oponente.getValSuperior()== cabeza)
                            {
                                referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "b");
                                Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                            }
                            else
                            {
                                referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "a");
                                Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                            }
                        }
                        else
                        {
                            if (Oponente.getValSuperior()== cabeza)
                            {
                                referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "a");
                                Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                            }
                            else
                            {
                                referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "b");
                                Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                            }
                        }
                   
                }
                else
                {                
                        if (Y==0)
                        {
                            if (Oponente.getValSuperior()== cola)
                            {
                                referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "a");
                                Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                            }
                            else
                            {
                                referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "b");
                                Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                            }

                        }
                        else
                        {
                            if (Oponente.getValSuperior()== cola)
                            {
                                referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "b");
                                Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                            }
                            else
                            {
                                referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "a");
                                Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                            }
                        }
                }
        }
        System.out.println("\n(CCP) (ImageOpoVal)Referencia imagen del oponente= "+referencia);
        return referencia;
    }

    
    
    //control referencia es un booleano que me dice si es horizontal o vertical, true = horizontal, false = vertical
    public String ImagenDelOponente (int cabeza, int cola, Pieza Oponente,boolean controlReferencia)
    {
        String referencia = "";
        //EL valor superior de la pieza va a ser siempre menor que el valor inferior de la pieza
        //el de la cabeza de del lado derecho
        if (controlReferencia==true)//HORIZONTAL
        {

                if ((Oponente.getValSuperior()== cabeza) || (Oponente.getValInferior()== cabeza))
                {
                    
                        if (Oponente.getValSuperior()== cabeza)
                        {
                            referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                            Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                        }
                        else
                        {
                            referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                            Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien

                        }

                  /*  if ( cabeza > Oponente.getValSuperior())/Pongo la imagen girada a la izquierda/
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                    }
                    else
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                    }
                    */
                }
                else
                {
                    if ((Oponente.getValSuperior()== cola) || (Oponente.getValInferior()== cola))
                    {
                        if (Oponente.getValSuperior()== cola)
                        {
                            referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                            Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                        }
                        else
                        {
                            referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                            Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien

                        }
                    }

                 /*    if ( cola > Oponente.getValSuperior())
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                    }
                    else
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                    }
                    */
                }
        }
        else//VERTICAL
        {

             if ((Oponente.getValSuperior()== cabeza) || (Oponente.getValInferior()== cabeza))
                {
                    if (Oponente.getValSuperior()== cabeza)
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "a");
                        Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                    }
                    else
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "b");
                        Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                    }



                   /* if ( cabeza > Oponente.getValSuperior())//Pongo la imagen girada a la izquierda/
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "c");
                    }
                    else
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "d");
                    }
                    */
                }
                else
                {

                  if (Oponente.getValSuperior()== cola)
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "b");
                        Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                    }
                    else
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "a");
                        Oponente.setImagenAsociadaActual(referencia);//Imprimirlo afuera para saber si lo agrego bien
                    }



                   /*  if ( cola > Oponente.getValSuperior())//Pongo la imagen girada a la izquierda/
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "b");
                    }
                    else
                    {
                        referencia = concatenarPathImagenOponente (Oponente.getValSuperior(),Oponente.getValInferior(), "a");
                    }*/
                }
        }   
        System.out.println("\n(CCP) Referencia imagen del oponente= "+referencia);
        return referencia;
    }
    
    
    
    
      public String PosFichaOponenteCabezaCola(Usuario user, Pieza piezaOponente)
    {
        int cabezaT, colaT;
                            cabezaT = user.getPartida().getCabezaCola().getCabeza(); colaT = user.getPartida().getCabezaCola().getCola();
        int valSupOpo, valInfOpo;
                             valSupOpo = piezaOponente.getValSuperior();  valInfOpo = piezaOponente.getValInferior();

        String posicionDevuelta="";

        if ((valSupOpo == cabezaT) || (valInfOpo == cabezaT))
        {
            //compara con la cabeza y luego busco las coordenadas exactas....

            posicionDevuelta  = PosFichaOponete(user.getPartida().getCabezaCola().getCoordenadaXcabeza(),user.getPartida().getCabezaCola().getCoordenadaYcabeza(),user,piezaOponente);
            System.out.println("\n(CabezaCola)(PFOC)Posicion devuelta (cabeza)= "+posicionDevuelta);

        }
        else
        {
             if ((valSupOpo == colaT) || (valInfOpo == colaT))
            {
                //compara con la cabeza y luego busco las coordenadas exactas....
                posicionDevuelta  = PosFichaOponete(user.getPartida().getCabezaCola().getCoordenadaXcola(),user.getPartida().getCabezaCola().getCoordenadaYcola(),user,piezaOponente);
                System.out.println("\n(CabezaCola)(PFOC)Posicion devuelta (cola)= "+posicionDevuelta);

            }
            else
            {
                System.out.println("\nNo se encontro match"); posicionDevuelta = "false";
            }
        }

        return posicionDevuelta;
    }


       public String PosFichaOponete(int coordenadaX, int coordenadaY, Usuario user,Pieza Oponente)
    {
        //NECESITO COMPARA SEGUN CON CUAL COINCIDE LA FICHA CON LA CEBEZA Y COLA/
        String posicion=""; String imagen="";

      // int cabeza;   cabeza= user.getPartida().getCabezaCola().getCabeza();
       //int cola;   cola = user.getPartida().getCabezaCola().getCabeza();

   //     int valorSupJg = piezaJugador.getValSuperior();
     //   int valorInfJg = piezaJugador.getValInferior();
        int cabezaT, colaT;
        cabezaT = user.getPartida().getCabezaCola().getCabeza(); colaT = user.getPartida().getCabezaCola().getCola();

        int tamañoTableroX=0; int tamañoTableroY=0;
        tamañoTableroX = user.getPartida().tamañoTableroX;
        tamañoTableroY = user.getPartida().tamañoTableroY;

        Pieza tablero[][]=user.getPartida().getTablero();


        System.out.println("\n(CCP)(PosFichaOponente)TamañoTablero= "+tamañoTableroX+"-"+tamañoTableroY+"; coordenadaX-Y= "+coordenadaX+"-"+coordenadaY
                        +"      Valores de la ficha OPONENTE"+Oponente.getValSuperior()+"-"+Oponente.getValInferior());

        //REVISAR SI LAS CASILLAS DEL TABLERO ESTAN DISPONIBLES

        if( coordenadaX == 0 && coordenadaY==0 ) //ARRIBA A LA IZQUIERDA (0-0)baja
          {
             posicion =(coordenadaX+1)+"-"+(coordenadaY);  System.out.println("\nPosicion en CabezaCola 1 =     "+posicion);
            // imagen = ImagenDelOponente (cabezaT, colaT,Oponente,false); 
             imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,false,coordenadaX+1, coordenadaY);
             System.out.println("\nImagen en CabezaCola 1 =     "+imagen);
          }
          else
          {
            if ((coordenadaX == tamañoTableroX-1) && (coordenadaY == tamañoTableroY-1))//Esquina inferior derecha (6-9)sube
            {
                 posicion=(coordenadaX-1)+"-"+(coordenadaY);  System.out.println("\nPosicion en CabezaCola 2 =     "+posicion);
                 //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,false);
                 imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,false,coordenadaX-1, coordenadaY);
                 System.out.println("\nImagen en CabezaCola 2 =     "+imagen);
            }
            else
            {
                if ((coordenadaX == 0) && (coordenadaY == tamañoTableroY-1))//Derecha arriba (0-9)a la izquierda
                {
                     posicion = (coordenadaX)+"-"+(coordenadaY-1);    System.out.println("\nPosicion en CabezaCola 3 =     "+posicion);
                     //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,true);
                     imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,true,coordenadaX, coordenadaY-1);
                     System.out.println("\nImagen en CabezaCola 3 =     "+imagen);
                }
                else
                {
                    if ((coordenadaX == tamañoTableroX-1) && (coordenadaY == 0))//Inferior izquierdo (6-0) a la derecha
                    {
                         posicion = (coordenadaX)+"-"+(coordenadaY+1);    System.out.println("\nPosicion en CabezaCola 4 =     "+posicion);
                         //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,true);
                         imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,true,coordenadaX, coordenadaY+1);
                         System.out.println("\nImagen en CabezaCola 4 =     "+imagen);
                    }
                    else
                    {


                        if (coordenadaY == (tamañoTableroY-1) && (tablero[coordenadaX-1][coordenadaY] == null) )//subir y no me encuentro una ficha
                        {
                           posicion = (coordenadaX-1)+"-"+(coordenadaY);  System.out.println("\nPosicion en CabezaCola 5 =     "+posicion);
                           //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,false);
                           imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,false,coordenadaX-1, coordenadaY);
                           System.out.println("\nImagen en CabezaCola 5 =     "+imagen);
                        }
                        else
                        {
                            /*if (coordenadaY == (tamañoTableroY-1) && (tablero[coordenadaX-1][coordenadaY] != null) )//si subo y me encuentro una ficha, borde derecho
                            {
                               posicion = (coordenadaX)+"-"+(coordenadaY-1);    System.out.println("\nPosicion en CabezaCola 6 =     "+posicion);
                               //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,true);
                               imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,true,coordenadaX, coordenadaY-1);
                               System.out.println("\nImagen en CabezaCola 6 =     "+imagen);
                            }
                            else
                            {*/
                                if ((coordenadaY == 0) && (tablero[coordenadaX+1][coordenadaY]) == null)//bajo por el borde izquierdo sin encontrar ficha
                                {
                                    posicion = (coordenadaX+1)+"-"+(coordenadaY); System.out.println("\nPosicion en CabezaCola 7 =     "+posicion);
                                    //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,false);
                                    imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,false,coordenadaX+1, coordenadaY);
                                    System.out.println("\nImagen en CabezaCola 7 =     "+imagen);
                                }
                                else
                                {
                                  /*  if ((coordenadaY == 0) && (tablero[coordenadaX+1][coordenadaY]) != null)//bajo por el borde izquierdo oencontrando ficha
                                    {
                                        posicion = (coordenadaX)+"-"+(coordenadaY+1); System.out.println("\nPosicion en CabezaCola 8 =     "+posicion);
                                        //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,true);
                                        imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,true,coordenadaX, coordenadaY+1);
                                        System.out.println("\nImagen en CabezaCola 8 =     "+imagen);
                                    }
                                    else
                                    {*/
                                     //ACA VA LA PARTE DEL BORDE SUPERIOR E INFERIOR HORIZONTAL MAS LA FRANJA HORIZONTAL DEL MEDIO
                                      //PREGUNTO POR LA ANTERIOR A EL PARA SABER EN Q DIRECCION ME MOVERE//

                                            //ESTO ES PARA LA PRIMERA FICHA DEL JUEGO, las dos primeras opciones
                                        if (tablero[coordenadaX][coordenadaY-1] == null && tablero[coordenadaX][coordenadaY+1] == null)
                                        {
                                            if (Oponente.getValSuperior() == cabezaT || Oponente.getValInferior() == cabezaT)
                                            {
                                                posicion = (coordenadaX)+"-"+(coordenadaY-1);   System.out.println("\nPosicion en CabezaCola 9 =     "+posicion);
                                                //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,true);
                                                imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,true,coordenadaX, coordenadaY-1);
                                                System.out.println("\nImagen en CabezaCola 9 =     "+imagen);
                                            }
                                            else
                                            {
                                                posicion = (coordenadaX)+"-"+(coordenadaY+1);   System.out.println("\nPosicion en CabezaCola 10 =     "+posicion);
                                                //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,true);
                                                imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,true,coordenadaX, coordenadaY+1);
                                                System.out.println("\nImagen en CabezaCola 1 =     "+imagen);
                                            }
                                        }
                                        else
                                        {
                                             if (tablero[coordenadaX][coordenadaY-1] != null)//Vamos en horizontal hacia preguntando hacia la izquierda!=null, avanzo a la derecha
                                            {
                                                posicion = (coordenadaX)+"-"+(coordenadaY+1);   System.out.println("\nPosicion en CabezaCola 11 =     "+posicion);
                                                //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,true);
                                                imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,true,coordenadaX, coordenadaY+1);
                                                System.out.println("\nImagen en CabezaCola 11 =     "+imagen);
                                            }
                                            else
                                            {
                                                posicion = (coordenadaX)+"-"+(coordenadaY-1);    System.out.println("\nPosicion en CabezaCola 12 =     "+posicion);
                                                //imagen = ImagenDelOponente (cabezaT, colaT,Oponente,true);
                                                imagen =  ImagenDelOponenteValidacion (cabezaT,colaT, Oponente,true,coordenadaX, coordenadaY-1);
                                                System.out.println("\nImagen en CabezaCola 12 =     "+imagen);
                                            }
                                        }
                                   // }
                                }
                            //}
                        }


                    }
                }
            }
          }

        return posicion+":"+imagen;
    }


 /*    public String PosFichaOponete(int coordenadaX, int coordenadaY, Usuario user)
    {
        //NECESITO COMPARA SEGUN CON CUAL COINCIDE LA FICHA CON LA CEBEZA Y COLA/
        String posicion="";

      //  int coordenadaX;   coordenadaX= piezaJugador.getCoordenadaX();
        //int coordenadaY;   coordenadaY = piezaJugador.getCoordenadaY();

   //     int valorSupJg = piezaJugador.getValSuperior();
     //   int valorInfJg = piezaJugador.getValInferior();

        int tamañoTableroX=0; int tamañoTableroY=0;
        tamañoTableroX = user.getPartida().tamañoTableroX;
        tamañoTableroY = user.getPartida().tamañoTableroY;

        Pieza tablero[][]=user.getPartida().getTablero();


        System.out.println("\nTamañoTablero= "+tamañoTableroX+"-"+tamañoTableroY+"; coordenadaX= "+coordenadaX+"-"+coordenadaY);

        //REVISAR SI LAS CASILLAS DEL TABLERO ESTAN DISPONIBLES

        if( coordenadaX == 0 && coordenadaY==0 ) //ARRIBA A LA IZQUIERDA (0-0)
          {
             posicion=coordenadaX+"-"+(coordenadaY+1);  System.out.println("\nPosicion en CabezaCola 1 =     "+posicion);
          }
          else
          {
            if ((coordenadaX == tamañoTableroX-1) && (coordenadaY == tamañoTableroY-1))//Esquina inferior derecha (6-9)
            {
                 posicion=(coordenadaX-1)+"-"+(coordenadaY);  System.out.println("\nPosicion en CabezaCola 2 =     "+posicion);
            }
            else
            {
                if ((coordenadaX == 0) && (coordenadaY == tamañoTableroY-1))//Derecha arriba (0-9)
                {
                     posicion = (coordenadaX)+"-"+(coordenadaY-1);    System.out.println("\nPosicion en CabezaCola 3 =     "+posicion);
                }
                else
                {
                    if ((coordenadaX == tamañoTableroX-1) && (coordenadaY == 0))//Inferior izquierdo (6-0)
                    {
                         posicion = (coordenadaX)+"-"+(coordenadaY+1);    System.out.println("\nPosicion en CabezaCola 4 =     "+posicion);
                    }
                    else
                    {


                        if (coordenadaY == (tamañoTableroY-1) && (tablero[coordenadaX-1][coordenadaY] == null) )//subir y no me encuentro una ficha
                        {
                           posicion = (coordenadaX-1)+"-"+(coordenadaY);  System.out.println("\nPosicion en CabezaCola 5 =     "+posicion);
                        }
                        else
                        {
                            if (coordenadaY == (tamañoTableroY-1) && (tablero[coordenadaX-1][coordenadaY] != null) )//si subo y me encuentro una ficha, borde derecho
                            {
                               posicion = (coordenadaX)+"-"+(coordenadaY-1);    System.out.println("\nPosicion en CabezaCola 6 =     "+posicion);
                            }
                            else
                            {
                                if ((coordenadaY == 0) && (tablero[coordenadaX+1][coordenadaY]) == null)//bajo por el borde izquierdo sin encontrar ficha
                                {
                                    posicion = (coordenadaX+1)+"-"+(coordenadaY); System.out.println("\nPosicion en CabezaCola 7 =     "+posicion);
                                }
                                else
                                {
                                    if ((coordenadaY == 0) && (tablero[coordenadaX+1][coordenadaY]) != null)//bajo por el borde izquierdo oencontrando ficha
                                    {
                                        posicion = (coordenadaX)+"-"+(coordenadaY+1); System.out.println("\nPosicion en CabezaCola 8 =     "+posicion);
                                    }
                                    else
                                    {
                                     //ACA VA LA PARTE DEL BORDE SUPERIOR E INFERIOR HORIZONTAL MAS LA FRANJA HORIZONTAL DEL MEDIO
                                      //PREGUNTO POR LA ANTERIOR A EL PARA SABER EN Q DIRECCION ME MOVERE//

                                        if (tablero[coordenadaX][coordenadaY-1] != null)//Vamos en horizontal hacia preguntando hacia la izquierda!=null, avanzo a la derecha
                                        {
                                            posicion = (coordenadaX)+"-"+(coordenadaY+1);   System.out.println("\nPosicion en CabezaCola 9 =     "+posicion);
                                        }
                                        else
                                        {
                                            posicion = (coordenadaX)+"-"+(coordenadaY-1);    System.out.println("\nPosicion en CabezaCola 10 =     "+posicion);
                                        }

                                    }
                                }
                            }
                        }


                    }
                }
            }
          }
          
        return posicion;
    }*/


    public String PosicionFichaDelOponente(Usuario user, Pieza piezaJugada, Pieza Oponente)
      {
          int coorPJugadaX, coorPJugadaY; coorPJugadaX= coorPJugadaY=0;
          int tamañoTabX, tamañoTabY;
          tamañoTabX = user.getPartida().tamañoTableroX;
          tamañoTabY = user.getPartida().tamañoTableroY;

          Pieza tab[][] = user.getPartida().getTablero();

          coorPJugadaX = piezaJugada.getCoordenadaX();
          coorPJugadaY = piezaJugada.getCoordenadaY();
          
          
          if( coorPJugadaX == 0 && coorPJugadaY==0 )
          {
             Oponente.setCoordenadaX(coorPJugadaX);
             Oponente.setCoordenadaY(coorPJugadaY+1);
          }
          else
          {
            if ((coorPJugadaX == tamañoTabX-1) && (coorPJugadaY == tamañoTabY-1))
            {
                Oponente.setCoordenadaX(coorPJugadaX);
                Oponente.setCoordenadaY(coorPJugadaY-1);
            }
            else
            {
                if ((coorPJugadaX == tamañoTabX-1) && (coorPJugadaY == 0))
                {
                    Oponente.setCoordenadaX(coorPJugadaX-1);
                    Oponente.setCoordenadaY(coorPJugadaY);
                }
                else
                {
                    if ((coorPJugadaX == 0) && (coorPJugadaY == tamañoTabY-1))
                    {
                        Oponente.setCoordenadaX(coorPJugadaX+1);
                        Oponente.setCoordenadaY(coorPJugadaY);
                    }
                    else
                    {
                        
                    }
                }
            }
          }
          /*
           *  String ImagenSelecJugada="";
          String direccionImagen="";
          ImagenSelecJugada = piezaJugada.getImagenAsociadaActual();
          direccionImagen = ImagenSelecJugada.substring(2, 3);// direccion de la imgen, hacer un case para la validacion de la posicion
           //direccionImagen = ImagenSelecJugada.substring(0, 2);Valores de la ficha
          System.out.println("(ComuServer)Path de la imagen en posicion del oponente= "+direccionImagen);
         // direccionImagen = ImagenSelecJugada.substring(1);
          System.out.println("(cabezacola)char imagen= "+direccionImagen.charAt(0));

          switch(direccionImagen.charAt(0))
          {
              case 'a':
                        System.out.println("\nEstoy en a");

                        if (tab[][])




              break;

              case 'b':
                        System.out.println("\nEstoy en b");
              break;

              case 'c':
                        System.out.println("\nEstoy en c");
              break;

              case 'd':
                        System.out.println("\nEstoy en d");
              break;

              default:
                        System.out.println("\nNo estoy en ninguno");
              break;

           * return direccionImagen;
          }
*/
        return "";
      }


    public String toString()
    {
        String cadena="\nCabeza= "+this.cabeza+
                            "\ncoordenada X= "+this.coordenadaXcabeza+
                            "   coordenada Y= "+this.coordenadaYcabeza+
                            "\nCola= "+this.cola+
                            "\ncoordenada X= "+this.coordenadaXcola+
                            "   coordenada Y= "+this.coordenadaYcola+"\n";

        return cadena;
    }






}
